package DAL;

import java.io.*;
import java.util.*;
import java.awt.image.*;
import javax.imageio.*;

/**
 * Classe responsavel pela leitura dos dados de arquivos de imagem.
 *
 * @author (R Soares)
 * @version (1.0 - 07.04.2010)
 */
public class ArquivoImagemDAL
{
    // Variáveis de Instância --------------------------------------------------*
    private BufferedImage _imagemFundo;
    private BufferedImage _imagemSatelite;
    private BufferedImage _imagemMeteoro;
    private BufferedImage _imagemPlaneta;
    private BufferedImage _imagemMissil;

    // Construtores ----------------------------------------------------------------*
    /**
     * O construtor da classe recebe o nome do arquivo que será lido e o obtem a partir da
     * classe GeradorArquivosControle.
     */
    public ArquivoImagemDAL()
    {
        gerarImagens();
    }

    // Métodos ---------------------------------------------------------------------*

    /**
     *  Método que efetua a geração dos objetos de imagem.
     */
    private void gerarImagens()
    {
       _imagemFundo  = lerArquivoImagem ("fundo");
       _imagemSatelite = lerArquivoImagem ("satelite");
       _imagemMeteoro = lerArquivoImagem ("meteoro");
       _imagemPlaneta = lerArquivoImagem ("planeta");
       _imagemMissil = lerArquivoImagem ("missil");
    }

    /**
     *  Método que efetua a leitura do arquivo de imagem de nome informado como parametro
     *  e retorna o objeto do arquivo lido.
     *
     * @return     BufferedImage : Objeto de imagem do arquivo lido
     */
    private BufferedImage lerArquivoImagem(String nomeArquivo)
    {
            BufferedImage imagem = null;

             try{
                   imagem = ImageIO.read(
                                   new Conexao().obterArquivoImagem(nomeArquivo) );
             }

             catch(FileNotFoundException e) {
                    System.out.println("Arquivo não localizado : \\Imagens\\" + nomeArquivo + ".jpg");
             }

             catch(IOException e) {
                    System.out.println("Arquivo corrompido : \\Imagens\\" + nomeArquivo + ".jpg");
             }

             return imagem;
    }

    /**
     *  Retorna o objeto da imagem de fundo.
     *
     * @return     BufferedImage : Objeto de imagem.
     */
    public BufferedImage getImagemFundo()
    {
       return _imagemFundo;
    }

    /**
     *  Retorna o objeto da imagem de satelite.
     *
     * @return     BufferedImage : Objeto de imagem.
     */
    public BufferedImage getImagemSatelite()
    {
       return _imagemSatelite;
    }

    /**
     *  Retorna o objeto da imagem de meteoro.
     *
     * @return     BufferedImage : Objeto de imagem.
     */
    public BufferedImage getImagemMeteoro()
    {
       return _imagemMeteoro;
    }

    /**
     *  Retorna o objeto da imagem de planeta.
     *
     * @return     BufferedImage : Objeto de imagem.
     */
    public BufferedImage getImagemPlaneta()
    {
       return _imagemPlaneta;
    }

    /**
     *  Retorna o objeto da imagem de missil.
     *
     * @return     BufferedImage : Objeto de imagem.
     */
    public BufferedImage getImagemMissil()
    {
       return _imagemMissil;
    }

}  // FIM CLASSE
